package cn.iocoder.yudao.module.crossborder.risk.api.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Map;

/**
 * 风险评估请求 DTO
 *
 * @author LHL
 */
@Schema(description = "RPC 服务 - 风险评估请求 DTO")
@Data
public class RiskAssessmentReqDTO {

    @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "ORDER")
    @NotEmpty(message = "业务类型不能为空")
    private String businessType;

    @Schema(description = "业务编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048")
    @NotNull(message = "业务编号不能为空")
    private Long businessId;

    @Schema(description = "用户编号", example = "3072")
    private Long userId;

    @Schema(description = "风险类型", example = "1")
    private Integer riskType;

    @Schema(description = "评估数据", example = "{\"amount\": 1000, \"ip\": \"192.168.1.1\"}")
    private Map<String, Object> assessmentData;

    @Schema(description = "客户端IP", example = "192.168.1.1")
    private String clientIp;

    @Schema(description = "用户代理", example = "Mozilla/5.0...")
    private String userAgent;

    @Schema(description = "设备指纹", example = "device123456")
    private String deviceFingerprint;

    @Schema(description = "地理位置", example = "上海市")
    private String location;

    @Schema(description = "备注", example = "特殊情况说明")
    private String remark;

}
